home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
magic
/
d
/
magicfsm.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
7KB
|
179 lines
(*----------------------------------------------------------------------*
* *
* MAGIC Modula's All purpose GEM Interface Cadre *
* ÿ ÿ ÿ ÿ ÿ *
*----------------------------------------------------------------------*
* Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
*----------------------------------------------------------------------*
* Dieses Modul ist urheberrechtlich geschtzt. *
* *
* Die Verffentlichung des Quelltextes oder Teilen daraus in schrift- *
* licher Form, insbesondere in Zeitschriften, sowie die Verbreitung *
* ber Public-Domain-Hndler bedarf der ausdrcklichen schriftlichen *
* Genehmigung des Autors! *
* *
* Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
* zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins- *
* besondere dieser Urheberrechts-Vermerk nicht verndert wird, und *
* durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor *
* behlt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
* von Grnden zu widerrufen. *
*----------------------------------------------------------------------*)
(*----------------------------------------------------------------------*
* Enthlt die von Atari zustzlich eingefhrten erweiterten Funktionen *
* um das neue FSM-GDOS anzusteuern. Fr nhere Informationen bitte *
* unbedingt den FSM-Programmers Guide von Atari GmbH anfordern! *
*----------------------------------------------------------------------*)
DEFINITION MODULE MagicFSM;
FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
FROM SYSTEM IMPORT ADDRESS;
(* Returnwerte fr MagicVDI.VqGdos *)
CONST FSMGdos = 05F46534DH; (* = '_FSM' FSMGdos von Atari Corp. *)
FontGdos = 05F464E54H; (* = '_FNT' FontGdos von Atari Corp. *)
CONST NoError = 0;
CharNotFound = 1;
ReadError = 8;
OpenError = 9;
BadFileformat = 10;
OutOfMemory = 11;
MiscError = -1;
TYPE FsmInt = RECORD
value: sINTEGER;
remainder: sINTEGER;
END;
TYPE FsmFpoint = RECORD
x: FsmInt;
y: FsmInt;
END;
TYPE FsmDataFpoint = RECORD
pt: FsmFpoint;
cpt: FsmFpoint;
sharp: FsmFpoint;
END;
TYPE PtrFsmComponent = POINTER TO FsmComponent;
FsmComponent = RECORD
reserved1: sINTEGER;
nextComponent: PtrFsmComponent;
numPoints: Byte;
numCurves: Byte;
numContours: Byte;
reserved2: ARRAY [0..12] OF Byte;
points: POINTER TO ARRAY [0..255] OF FsmDataFpoint;
startPts: POINTER TO ARRAY [0..255] OF Byte;
END;
PROCEDURE InqFacename (handle, num: sINTEGER;
VAR name: ARRAY OF CHAR; VAR fsm: BOOLEAN): sINTEGER;
(* vqt_name *)
PROCEDURE InqFExtent (handle: sINTEGER; REF string: ARRAY OF CHAR;
VAR extent: ARRAY OF LOC);
(* vqt_f_extent *)
PROCEDURE FSMText (handle, x, y: sINTEGER; REF string: ARRAY OF CHAR);
(* v_ftext *)
PROCEDURE KillOutline (handle: sINTEGER; VAR component: ARRAY OF LOC);
(* v_killoutline *)
PROCEDURE GetOutline (handle: sINTEGER; ch: CHAR; VAR component: ARRAY OF LOC);
(* v_getoutline *)
CONST ScratchFSM = 0;
ScratchBitmap = 1;
NoScratch = 2;
PROCEDURE SetScratch (handle, mode: sINTEGER);
(* vst_scratch *)
CONST ToApplication = 0;
ToScreen = 1; (* 8^( *)
PROCEDURE SetErrormode (handle, mode: sINTEGER; VAR errorcode: sINTEGER);
PROCEDURE SetArbpoints (handle, point: sINTEGER; VAR cw, ch, bw, bh: sINTEGER): sINTEGER;
(* set_point *)
PROCEDURE InqAdvance (handle: sINTEGER; ch: CHAR;
VAR advx, advy, xremain, yremain: sINTEGER);
(* vqt_advance *)
PROCEDURE InqDeviceinfo (handle, device: sINTEGER; VAR devstr: ARRAY OF CHAR): BOOLEAN;
(* vqt_devinfo *)
PROCEDURE SaveFSMCache (handle: sINTEGER; REF file: ARRAY OF CHAR): sINTEGER;
(* v_savecache *)
PROCEDURE LoadFSMCache (handle: sINTEGER; REF file: ARRAY OF CHAR; mode: sINTEGER): sINTEGER;
(* v_loadcache *)
PROCEDURE FlushFSMCache (handle: sINTEGER);
(* v_flushcache *)
PROCEDURE SetSize (handle, point: sINTEGER; VAR cw, ch, bw, bh: sINTEGER): sINTEGER;
(* vst_size *)
PROCEDURE SetSkew (handle, skew: sINTEGER): sINTEGER;
(* vst_skew *)
PROCEDURE GetFSMAsciitable (handle: sINTEGER; VAR ascii, style: ADDRESS);
(* v_get_tables *)
PROCEDURE GetFSMCachesize (handle, cache: sINTEGER): lCARDINAL;
(* v_cachesize *)
TYPE PlacementInfo = RECORD
xAdvance: sINTEGER;
xRemainder: sINTEGER;
yAdvance: sINTEGER;
yRemainder: sINTEGER;
mapWidth: sINTEGER;
mapHeight: sINTEGER;
xOffset: REAL;
yOffset: REAL;
(* 32Bit, wei der Teufel was fr ein Format... *)
END;
TYPE BitmapInfo = ARRAY [0..6] OF PlacementInfo;
PROCEDURE GetBitmapinfo (handle, char: sINTEGER; VAR info: ARRAY OF LOC);
PROCEDURE EnableBezier (handle: sINTEGER): sINTEGER;
PROCEDURE DisableBezier (handle: sINTEGER);
PROCEDURE BezierBuffer (handle: sINTEGER; buff: ADDRESS; words: sINTEGER);
PROCEDURE Bezier (handle, count: sINTEGER;
VAR xyarr, bezarr, extent: ARRAY OF LOC;
VAR totpts, totmoves: sINTEGER);
PROCEDURE FilledBezier (handle, count: sINTEGER;
VAR xyarr, bezarr, extent: ARRAY OF LOC;
VAR totpts, totmoves: sINTEGER);
PROCEDURE BezierQuality (handle, percent: sINTEGER): sINTEGER;
END MagicFSM.